using System;
using System.Collections.Generic;
using System.Text;
using System.Management.Automation;
using System.Management.Automation.Provider;
using System.Management.Automation.Runspaces;
using System.ComponentModel;
using System.Collections.ObjectModel;

namespace VDICmdlets
{
    [RunInstaller(true)]
    public class PSSnapIn : CustomPSSnapIn
    {
        private Collection<CmdletConfigurationEntry> _cmdlets;

        public override string Name
        {
            get { return "VDICmdlets"; }
        }
        public override string Vendor
        {
            get { return "Propalms"; }
        }
        public override string VendorResource
        {
            get { return "VDICmdlets,Propalms"; }
        }
        public override string Description
        {
            get { return "Registers the CmdLets and Providers in this assembly"; }
        }
        public override string DescriptionResource
        {
            get { return "VDICmdlets,Registers the CmdLets and Providers in this assembly"; }
        }
        public override Collection<CmdletConfigurationEntry> Cmdlets
        {
            get
            {
                if (null == _cmdlets)
                {
                    _cmdlets = new Collection<CmdletConfigurationEntry>();

                    _cmdlets.Add(new CmdletConfigurationEntry("Get-AdminLogin", typeof(admlogin), "clients.dll-Help.xml"));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-adminusers", typeof(getusers), "clients.dll-Help.xml"));
                    _cmdlets.Add(new CmdletConfigurationEntry("Remove-AdminUser", typeof(removeuser), "clients.dll-Help.xml"));
                    _cmdlets.Add(new CmdletConfigurationEntry("Add-AdminUser", typeof(adduser), "clients.dll-Help.xml"));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-Clients", typeof(getclients), ""));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-Domainclients", typeof(getdomainclients), "clients.dll-Help.xml"));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-VHost", typeof(getvirtualhosts), "clients.dll-Help.xml"));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-DesktopCentres", typeof(getDC), "clients.dll-Help.xml"));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-ManagedDesktops", typeof(manageddesktop), "clients.dll-Help.xml"));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-AdminSessions", typeof(adminsess), "clients.dll-Help.xml"));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-UserSessions", typeof(usersess), ""));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-MDPools", typeof(manageddesktoppools), "clients.dll-Help.xml"));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-AdminLogs", typeof(adminlogs), "clients.dll-Help.xml"));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-UserLogs", typeof(userlogs), ""));
                    _cmdlets.Add(new CmdletConfigurationEntry("Remove-DesktopCenter", typeof(removedesktopcenter), ""));
                    _cmdlets.Add(new CmdletConfigurationEntry("Remove-Client", typeof(removeclient), ""));
                    _cmdlets.Add(new CmdletConfigurationEntry("Remove-VHosts", typeof(removevhosts), ""));
                    _cmdlets.Add(new CmdletConfigurationEntry("Remove-MDPool", typeof(removemdpool), ""));
                    _cmdlets.Add(new CmdletConfigurationEntry("Reset-ManagedDesktop", typeof(updatemanageddesktop), ""));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-AdminLogout", typeof(admlogout), "clients.dll-Help.xml"));
                    _cmdlets.Add(new CmdletConfigurationEntry("Add-VHosts", typeof(addvhost), ""));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-VirtualizationTypes", typeof(virtualizationtypes), ""));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-VirtualizationProductTypes", typeof(virtualizationproducttypes), ""));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-VirtualPlatforms", typeof(virtualplatforms), ""));
                    _cmdlets.Add(new CmdletConfigurationEntry("Get-DCHost", typeof(getdchost), ""));
                    _cmdlets.Add(new CmdletConfigurationEntry("Assign-VHosttoDC", typeof(assignvhosttodc), ""));
                }
                return _cmdlets;
            }
        }
    }
}